package cn.codeforfun.common;


import cn.codeforfun.controller.IndexController;
import cn.codeforfun.jfinalplugin.activemq.core.ActiveMqPlugin;
import cn.codeforfun.mq.queue.FirstQueue;
import cn.codeforfun.mq.queue.SecondQueue;
import cn.codeforfun.mq.topic.*;
import com.jfinal.config.*;
import com.jfinal.render.ViewType;

/**
 * API引导式配置
 */
public class DemoConfig extends JFinalConfig {

    /**
     * 配置常量
     */
    public void configConstant(Constants me) {
        // 加载少量必要配置，随后可用PropKit.get(...)获取值
        me.setViewType(ViewType.JSP);
        me.setDevMode(true);
    }

    /**
     * 配置路由
     */
    public void configRoute(Routes me) {
        me.add("/", IndexController.class);    // 第三个参数为该Controller的视图存放路径
    }


    /**
     * 配置插件
     */
    public void configPlugin(Plugins me) {
        //配置队列插件
        ActiveMqPlugin mqPlugin = new ActiveMqPlugin();
        mqPlugin.addQueue(new FirstQueue("queue1"));
        mqPlugin.addQueue(new SecondQueue("queue2"));
        FirstTopic topic1 = new FirstTopic("topic1");
        topic1.addListener(new FirstTopicListener1());
        topic1.addListener(new FirstTopicListener2());
        SecondTopic topic2 = new SecondTopic("topic2");
        topic2.addListener(new SecondTopicListener1());
        topic2.addListener(new SecondTopicListener2());
        mqPlugin.addTopic(topic1);
        mqPlugin.addTopic(topic2);
        me.add(mqPlugin);
    }

    /**
     * 配置全局拦截器
     */
    public void configInterceptor(Interceptors me) {
    }

    /**
     * 配置处理器
     */
    public void configHandler(Handlers me) {

    }

    /**
     * 建议使用 JFinal 手册推荐的方式启动项目
     * 运行此 main 方法可以启动项目，此main方法可以放置在任意的Class类定义中，不一定要放于此
     */
//    public static void main(String[] args) {
//        JFinal.start("WebRoot", 80, "/", 5);
//    }
}
